#
# PVM 2.4
# University of Tennesee, Knoxville, TN.
# Oak Ridge National Laboratory, Oak Ridge, TN.
#
# Makefile for PVM Fortran lib/Sun-3
#
ARCH	=	SUN3
ARCHCFLAGS	=
HASRANLIB	=	t
# END of custom section - leave this line here
#
# Generic half makefile for PVM Fortran lib.
#
# define architecture (eg. SUN4 SUN3 RIOS)

SHELL	=	/bin/sh
SDIR =  ..
CC   =  cc
CFLAGS = -g -D$(ARCH) -c $(ARCHCFLAGS) -I$(SDIR) -I../../src $(CDEBUGFLAGS)
RM = rm -f
M4 = m4
FORTRAN=`case "$(FC)@$(F77)" in *@) echo $(FC) ;; @*) echo $(F77) ;; *) echo f77;; esac`

LOBS = fbarrier.o \
	fenroll.o \
	fgetbytes.o \
	fgetncplx.o \
	fgetndcplx.o \
	fgetndfloat.o \
	fgetnfloat.o \
	fgetnint.o \
	fgetnlong.o \
	fgetnshort.o \
	fgetstring.o \
	finithow.o \
	finitiate.o \
	finitiatem.o \
	finitsend.o \
	fleave.o \
	fprobe.o \
	fprobemulti.o \
	fpstatus.o \
	fputbytes.o \
	fputncplx.o \
	fputndcplx.o \
	fputndfloat.o \
	fputnfloat.o \
	fputnint.o \
	fputnlong.o \
	fputnshort.o \
	fputstring.o \
	fpvmperror.o \
	frcv.o \
	frcvinfo.o \
	frcvmulti.o \
	fready.o \
	fsnd.o \
	fstatus.o \
	fterminate.o \
	fwaituntil.o \
	fwhoami.o \
	fvrcv.o \
	fvrcvmulti.o \
	fvsnd.o \

libxpvm.a:  $(LOBS)
	ar cr libxpvm.a $?
	case x$(HASRANLIB) in xt ) echo ranlib; ranlib libxpvm.a ;; esac

clean:
	rm -f $(LOBS) libxpvm.a

tidy:
	rm -f $(LOBS)

ftocstr.o:	$(SDIR)/ftocstr.c
	$(CC) $(CFLAGS) $(SDIR)/ftocstr.c
fbarrier.o:	$(SDIR)/fbarrier.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fbarrier.m4 > fbarrier.c
	$(CC) $(CFLAGS) fbarrier.c
	$(RM) fbarrier.c
fenroll.o:	$(SDIR)/fenroll.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fenroll.m4 > fenroll.c
	$(CC) $(CFLAGS) fenroll.c
	$(RM) fenroll.c
fgetbytes.o:	$(SDIR)/fgetbytes.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fgetbytes.m4 > fgetbytes.c
	$(CC) $(CFLAGS) fgetbytes.c
	$(RM) fgetbytes.c
fgetncplx.o:	$(SDIR)/fgetncplx.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fgetncplx.m4 > fgetncplx.c
	$(CC) $(CFLAGS) fgetncplx.c
	$(RM) fgetncplx.c
fgetndcplx.o:	$(SDIR)/fgetndcplx.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fgetndcplx.m4 > fgetndcplx.c
	$(CC) $(CFLAGS) fgetndcplx.c
	$(RM) fgetndcplx.c
fgetndfloat.o:	$(SDIR)/fgetndfloat.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fgetndfloat.m4 > fgetndfloat.c
	$(CC) $(CFLAGS) fgetndfloat.c
	$(RM) fgetndfloat.c
fgetnfloat.o:	$(SDIR)/fgetnfloat.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fgetnfloat.m4 > fgetnfloat.c
	$(CC) $(CFLAGS) fgetnfloat.c
	$(RM) fgetnfloat.c
fgetnint.o:	$(SDIR)/fgetnint.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fgetnint.m4 > fgetnint.c
	$(CC) $(CFLAGS) fgetnint.c
	$(RM) fgetnint.c
fgetnlong.o:	$(SDIR)/fgetnlong.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fgetnlong.m4 > fgetnlong.c
	$(CC) $(CFLAGS) fgetnlong.c
	$(RM) fgetnlong.c
fgetnshort.o:	$(SDIR)/fgetnshort.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fgetnshort.m4 > fgetnshort.c
	$(CC) $(CFLAGS) fgetnshort.c
	$(RM) fgetnshort.c
fgetstring.o:	$(SDIR)/fgetstring.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fgetstring.m4 > fgetstring.c
	$(CC) $(CFLAGS) fgetstring.c
	$(RM) fgetstring.c
finithow.o:	$(SDIR)/finithow.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/finithow.m4 > finithow.c
	$(CC) $(CFLAGS) finithow.c
	$(RM) finithow.c
finitiate.o:	$(SDIR)/finitiate.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/finitiate.m4 > finitiate.c
	$(CC) $(CFLAGS) finitiate.c
	$(RM) finitiate.c
finitiatem.o:	$(SDIR)/finitiatem.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/finitiatem.m4 > finitiatem.c
	$(CC) $(CFLAGS) finitiatem.c
	$(RM) finitiatem.c
finitsend.o:	$(SDIR)/finitsend.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/finitsend.m4 > finitsend.c
	$(CC) $(CFLAGS) finitsend.c
	$(RM) finitsend.c
fleave.o:	$(SDIR)/fleave.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fleave.m4 > fleave.c
	$(CC) $(CFLAGS) fleave.c
	$(RM) fleave.c
fprobe.o:	$(SDIR)/fprobe.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fprobe.m4 > fprobe.c
	$(CC) $(CFLAGS) fprobe.c
	$(RM) fprobe.c
fprobemulti.o:	$(SDIR)/fprobemulti.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fprobemulti.m4 > fprobemulti.c
	$(CC) $(CFLAGS) fprobemulti.c
	$(RM) fprobemulti.c
fpstatus.o:	$(SDIR)/fpstatus.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fpstatus.m4 > fpstatus.c
	$(CC) $(CFLAGS) fpstatus.c
	$(RM) fpstatus.c
fputbytes.o:	$(SDIR)/fputbytes.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fputbytes.m4 > fputbytes.c
	$(CC) $(CFLAGS) fputbytes.c
	$(RM) fputbytes.c
fputncplx.o:	$(SDIR)/fputncplx.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fputncplx.m4 > fputncplx.c
	$(CC) $(CFLAGS) fputncplx.c
	$(RM) fputncplx.c
fputndcplx.o:	$(SDIR)/fputndcplx.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fputndcplx.m4 > fputndcplx.c
	$(CC) $(CFLAGS) fputndcplx.c
	$(RM) fputndcplx.c
fputndfloat.o:	$(SDIR)/fputndfloat.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fputndfloat.m4 > fputndfloat.c
	$(CC) $(CFLAGS) fputndfloat.c
	$(RM) fputndfloat.c
fputnfloat.o:	$(SDIR)/fputnfloat.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fputnfloat.m4 > fputnfloat.c
	$(CC) $(CFLAGS) fputnfloat.c
	$(RM) fputnfloat.c
fputnint.o:	$(SDIR)/fputnint.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fputnint.m4 > fputnint.c
	$(CC) $(CFLAGS) fputnint.c
	$(RM) fputnint.c
fputnlong.o:	$(SDIR)/fputnlong.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fputnlong.m4 > fputnlong.c
	$(CC) $(CFLAGS) fputnlong.c
	$(RM) fputnlong.c
fputnshort.o:	$(SDIR)/fputnshort.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fputnshort.m4 > fputnshort.c
	$(CC) $(CFLAGS) fputnshort.c
	$(RM) fputnshort.c
fputstring.o:	$(SDIR)/fputstring.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fputstring.m4 > fputstring.c
	$(CC) $(CFLAGS) fputstring.c
	$(RM) fputstring.c
fpvmperror.o:	$(SDIR)/fpvmperror.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fpvmperror.m4 > fpvmperror.c
	$(CC) $(CFLAGS) fpvmperror.c
	$(RM) fpvmperror.c
frcv.o:	$(SDIR)/frcv.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/frcv.m4 > frcv.c
	$(CC) $(CFLAGS) frcv.c
	$(RM) frcv.c
frcvinfo.o:	$(SDIR)/frcvinfo.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/frcvinfo.m4 > frcvinfo.c
	$(CC) $(CFLAGS) frcvinfo.c
	$(RM) frcvinfo.c
frcvmulti.o:	$(SDIR)/frcvmulti.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/frcvmulti.m4 > frcvmulti.c
	$(CC) $(CFLAGS) frcvmulti.c
	$(RM) frcvmulti.c
fready.o:	$(SDIR)/fready.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fready.m4 > fready.c
	$(CC) $(CFLAGS) fready.c
	$(RM) fready.c
fsnd.o:	$(SDIR)/fsnd.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fsnd.m4 > fsnd.c
	$(CC) $(CFLAGS) fsnd.c
	$(RM) fsnd.c
fstatus.o:	$(SDIR)/fstatus.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fstatus.m4 > fstatus.c
	$(CC) $(CFLAGS) fstatus.c
	$(RM) fstatus.c
fterminate.o:	$(SDIR)/fterminate.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fterminate.m4 > fterminate.c
	$(CC) $(CFLAGS) fterminate.c
	$(RM) fterminate.c
fwaituntil.o:	$(SDIR)/fwaituntil.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fwaituntil.m4 > fwaituntil.c
	$(CC) $(CFLAGS) fwaituntil.c
	$(RM) fwaituntil.c
fwhoami.o:	$(SDIR)/fwhoami.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fwhoami.m4 > fwhoami.c
	$(CC) $(CFLAGS) fwhoami.c
	$(RM) fwhoami.c
fvrcv.o:	$(SDIR)/fvrcv.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fvrcv.m4 > fvrcv.c
	$(CC) $(CFLAGS) fvrcv.c
	$(RM) fvrcv.c
fvrcvmulti.o:	$(SDIR)/fvrcvmulti.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fvrcvmulti.m4 > fvrcvmulti.c
	$(CC) $(CFLAGS) fvrcvmulti.c
	$(RM) fvrcvmulti.c
fvsnd.o:	$(SDIR)/fvsnd.m4 $(ARCH).m4
	$(M4) $(ARCH).m4 $(SDIR)/fvsnd.m4 > fvsnd.c
	$(CC) $(CFLAGS) fvsnd.c
	$(RM) fvsnd.c

f2ctest:	$(SDIR)/f2ctest.f $(SDIR)/cf2ctest.m4
	$(M4) $(ARCH).m4 $(SDIR)/cf2ctest.m4 > cf2ctest.c
	$(CC) $(CFLAGS) cf2ctest.c
	$(FORTRAN) $(SDIR)/f2ctest.f cf2ctest.o libf2c.a $(HOME)/pvm/$(ARCH)/libpvm.a
